home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 028a / narc21.zip / NARC.DOC < prev    next >
Text File  |  1988-04-24  |  80KB  |  1,854 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.                    NARC - A STAND-ALONE DE-ARCHIVE UTILITY
  11.                            (no other files required)
  12.  
  13.  
  14.  
  15.  
  16.                          Documentation for NARC.EXE
  17.  
  18.  
  19.                            Written by Gary Conway
  20.  
  21.  
  22.                         Infinity Design Concepts, Inc.
  23.  
  24.  
  25.                             Louisville, Kentucky
  26.  
  27.  
  28.                             Copyright (c) 1987,88
  29.  
  30.  
  31.                                 Version 2.1
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.      NARC.DOC   Copyright (c) 1987,88   Infinity Design Concepts, Inc.
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.                NARC.EXE is a shareware program. NARC.EXE is and will  remain 
  71.                the property of Gary Conway. This program may not be used  in 
  72.                any connection with commercial ventures, nor as a sales  aid, 
  73.                without  the  expressed written consent of  the  author.  All 
  74.                rights are reserved.
  75.  
  76.  
  77.                          Infinity Design Concepts, Inc.
  78.                          1052 Parkway Drive
  79.                          Louisville, Kentucky 40217
  80.  
  81.                  Member  IEEE
  82.                          KIPCUG
  83.                          PCCL
  84.                          KKUG
  85.                          NSPE
  86.  
  87.  
  88.                  All  new releases of NARC.EXE and all other  IDC software
  89.                can be located -FIRST- on ;
  90.  
  91.                  The SoftStone   FOG #24  (supporting CP/M and MSDOS)
  92.                  (502)241-4109
  93.                  60 MEGs
  94.                  300/1200/2400 baud
  95.                  24 hrs.
  96.                  Louisville, Kentucky
  97.  
  98.                  Curt Edwards - SYSOP
  99.  
  100.          Sponsored by:   Kentucky Kaypro Users Group
  101.                          Accounting Computer Systems
  102.                          First Osborne Group
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.      NARC.DOC   Copyright (c) 1987,88   Infinity Design Concepts, Inc.
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.                                     SPEED IMPROVEMENTS
  132.  
  133.  
  134.                NARC release 2.1 extractions have been speeded up by 60 - 88% 
  135.                depending on the file and compression method.
  136.  
  137.  
  138.                               COMING SOON TO A BOARD NEAR YOU
  139.  
  140.                The  companion  program to NARC release 2.1  is  IDC-ARC.EXE. 
  141.                This  program is in its final stages of development and  will 
  142.                be released in April/May-88. NARC and IDC-ARC are designed to 
  143.                fully  work hand-in-hand with each other. A single  keystroke 
  144.                takes  you from one to the other at any time. IDC-ARC  allows 
  145.                multi-directory tagging and previewing of files to include in 
  146.                an  ARChive. The cryptic command line sequence has been  done 
  147.                away with altogether and a graphic point and shoot  interface 
  148.                has replaced it. In addition to the arcing functions, IDC-ARC 
  149.                is a complete DOS shell. A sample of the main screen follows.
  150.  
  151.  IDC-ARC Ver. 1.0 -   Pathname C:\NEWASM\NARC
  152.   Filename      Size    Date    Time   Attr        0 Files Tagged    0 Bytes
  153.  ═════════════ ══════ ════════ ═══════ ════ ╒═════════════════════════════════╕
  154.  NARC    .MAP│   5977│04-02-88│11:11a │     │    ┌───────────────────────┐    │
  155.  NARC    .NET│   1417│11-07-87│10:07a │     ├────┤ Volume:  ZORBA        ├────┤
  156.  NARC    .DES│    488│03-03-88│12:18a │     │    └───────────────────────┘    │
  157.  NARC    .ASM│ 275997│04-03-88│11:01a │     │ A - ARChive     F1-  HELP       │
  158.  NARC    .DOC│  75270│04-03-87│ 1:19p │     │ C - Copy        F2- Select ARC  │
  159.  NARC    .EXE│  27063│04-02-88│ 8:18p │     │ D - Directory   F3- Find File   │
  160.  NARC    .OBJ│  44552│04-12-88│ 8:17p │     │ E - Erase       F4- Print Dir   │
  161.  NARCCFG .SYM│    212│03-11-88│ 9:18a │     │ F - Attributes  F5- Shell DOS   │
  162.  NARCCFG .MAP│    405│03-27-88│11:07p │     │ L - Log Drive   F6- Tag ALL     │
  163.  NARCCFG .ASM│  38908│03-27-88│12:11p │     │ M - Move        F7- Invert Tags │
  164.  NARCCFG .DOC│   3422│08-12-87│10:20p │     │ N - NARC        F8- Sort Order  │
  165.  NARCCFG .OBJ│   8940│03-27-88│11:08a │     │ P - Print       F9-  Edit  File │
  166.  NARCCFG .EXE│   6991│03-27-88│ 9:11p │     │ Q - Quit       F10- Clr ARC Tags│
  167.  NARCDB  .BAT│     57│10-17-87│ 9:08a │     │ R - Rename     ALT-F9=Run       │
  168.  NARCENV .SET│    137│03-31-88│ 7:11p │   A │ S - Disk Space        Editor    │
  169.  NARCEXTR.ASM│  47065│12-27-87│11:12p │     │ T - Tag                         │
  170.  NARCEXTR.EXE│   4705│12-28-87│12:12p │     │ V - View File   ALT-letter      │
  171.  NARCHELP.SRC│  12168│04-01-88│10:27p │     │ W - WildTag     find file       │
  172.  NARCHELP.HLP│  11369│04-02-88│10:27p │     ╘═════════════════════════════════╛
  173.  ──────────────────────────────────────────────────────────────────────────────
  174.   Copy    ARC     View    Erase  Rename FileAttr  Tag     Move   DirTree  Print
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.      NARC.DOC   Copyright (c) 1987,88   Infinity Design Concepts, Inc.
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.                                        REGISTRATION
  193.  
  194.  
  195.                If  you find yourself using NARC, please take the time to  do 
  196.                the right thing and that is register your copy. You have been 
  197.                provided  the opportunity to freely test the  program  before 
  198.                even  thinking about registering. This is only fair,  so,  in 
  199.                fairness,  you should reciprocate and register your copy,  if 
  200.                you continue using the program.
  201.  
  202.                 Why register ?
  203.  
  204.                 1) You get the NARCCFG.EXE program for customizing NARC.
  205.                 2) You get notification of updates to all IDC software.
  206.                 3) You get patch table information.
  207.                 4) You get FREE net-mail services for contacting IDC.
  208.  
  209.                 Disk only with current version ..................  $20.00
  210.                 (includes manual on disk)
  211.  
  212.                 Printed manual ..................................  $15.00
  213.                 (bound and printed manual only, NO REGISTRATION)
  214.  
  215.                 Printed manual and reg. disk ....................  $35.00 
  216.  
  217.                 Site License ....................................  $50.00
  218.                 (required for business use)
  219.  
  220.  
  221.                Registered  users  can  obtain update  disks  for  $10.00.
  222.  
  223.                You will find the registration form in the ARChive with  this 
  224.                document  under the name REGISTER.FRM. Please use  this  form 
  225.                for registration.
  226.  
  227.  
  228.  
  229.                                 THIS IS NOT A FREE PROGRAM
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.      NARC.DOC   Copyright (c) 1987,88   Infinity Design Concepts, Inc.
  243.  
  244.  
  245.  
  246.  
  247.  
  248.   .............................................................................
  249.   ........................                         ............................
  250.   ........................    TABLE OF CONTENTS    ............................
  251.   .............................................................................
  252.  
  253.                                                                Page
  254.            WHAT IS IT ANYWAY..................................  1
  255.            ACKNOWLEDGEMENTS...................................  1
  256.            COMPATIBILITY......................................  2
  257.                Author's Ramblings.............................  2
  258.                ARChive Storage Methods Supported By NARC......  2
  259.                    Packing
  260.                    Squeezing
  261.                    Crunching
  262.                    Squashing
  263.            OVERVIEW...........................................  3
  264.                Video Modes ...................................  3
  265.                Mouse Support .................................  3
  266.                Sound .........................................  4
  267.                Environment Variables..........................  4
  268.            HELP...............................................  5
  269.            COMMANDS...........................................  6
  270.                Extract Command................................  6
  271.                View Command...................................  7
  272.                Print Command..................................  7
  273.                ARC-wind Command...............................  8
  274.                DRV-wind Command...............................  8
  275.                DirTree  Command..........*  NEW  *............  8
  276.                Quit Command...................................  9
  277.            ALTERNATE COMMANDS.................................  9
  278.                Function keys..................................  9
  279.                Find Command...................................  10
  280.                Kill File Command..............................  10
  281.                Page UP, DOWN, HOME,END........................  10
  282.                Using extensions besides .ARC and .ARK.........  10
  283.                Calling IDC-ARC.EXE............................  10
  284.                Command Line Processor.........................  10
  285.                Trivia status screen...........................  11
  286.            OPERATING HINTS AND SHORTCUTS......................  11
  287.            ERROR MESSAGES.....................................  12
  288.            ARCHIVE FILE FORMATS AND GENERAL INFORMATION.......  13
  289.                Packing........................................  14
  290.                Huffman coding (SQUEEZING).....................  15
  291.                Crunching (LZW Compression)....................  19
  292.            DETAILS OF STORAGE VERSIONS........................  21
  293.                ARChive file Header Structure..................  23
  294.            HASHING............................................  24
  295.                CRC - calculations.............................  24
  296.            ARC RELEASE DATES AND VERSIONS.....................  25
  297.  
  298.      ........................................................................
  299.        Narc (c) 1987,88 Infinity Design Concepts, Inc.  all rights reserved
  300.      ........................................................................
  301.  
  302.  
  303.      NARC.DOC   Copyright (c) 1987,88   Infinity Design Concepts, Inc.
  304.  
  305.                                 ═══════════════════
  306.                                 WHAT IS IT ANYWAY ?
  307.                                 ═══════════════════
  308.  
  309.  
  310.                NARC  is a menu driven de-ARChive facility, written  entirely 
  311.                in assembler. NARC allows you to easily move from ARC file to 
  312.                ARC file, with the option of viewing, printing, extracting or 
  313.                deleting  the subfiles from the ARChive. The program  may  be 
  314.                operated  from  the mouse or the keyboard. Menus are  of  the 
  315.                musical  popup variety to add a little "TechNoFlash"  to  the 
  316.                proceedings.  NARC is the culmination of about 18 months  of 
  317.                frustrating  effort  and 13000 + lines of 8088  source  code. 
  318.                NARC was developed using the Norton Editor and the  Microsoft 
  319.                Macro assembler on a Kaypro PC and an ALR 386/20.
  320.  
  321.                Why....
  322.  
  323.  
  324.                Because I use a lot of ARC  files and  ARC.EXE and the clones 
  325.                are  reminiscent  of  the  early  Ward  Christensen CP/M days 
  326.                in user interface etiquette, I wanted something a little more 
  327.                flexible and friendly to use. I would like to pause here  for 
  328.                a  second and give a little credit to Mr. Christensen  (  the 
  329.                Don  Garlits  of CP/M ) for the fine FREE  utilities  he  has 
  330.                given  to  ALL of us over the years. The next time you  do  a 
  331.                modem  transfer,  you can thank him for the  original  XMODEM 
  332.                from which all others have transpired.
  333.  
  334.            Why NARC...
  335.  
  336.                It  seemed like a good idea. Short for uN-ARC. The  idea  was 
  337.                originally Bob Freed's.
  338.  
  339.            Acknowledgments..
  340.  
  341.                I  would  like  to thank Bob Freed for  his  allowing  me  to 
  342.                examine his Z80 code before writing NARC. Bob wrote UNARC for 
  343.                the  CP/M world and is ( as of this writing 4/28/87)  working 
  344.                on  NOAH  the ARCing program for CP/M. I would also  like  to 
  345.                thank  System  Enhancement  Associates  for  releasing  their 
  346.                source  code  in "C". Without both of the above,  NARC  would 
  347.                have been a much larger chore than it was. Note also that the 
  348.                crunching algorithm used in ARC.EXE was taken from  COMPRESS, 
  349.                used in UNIX. A special thanks to Curt Edwards, Jerry Taylor, 
  350.                Chuck  Crumpton, Frank Roemer, Paul Bowling and  Ken  Romines 
  351.                for their "eagle-eyes" in locating errors.
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.      NARC.DOC   Copyright (c) 1987,88   Infinity Design Concepts, Inc.
  364.           
  365.                                      Page 1
  366.  
  367.                                 ═════════════
  368.                                 COMPATIBILITY
  369.                                 ═════════════
  370.  
  371.  
  372.                NARC  is compatible with all known  "skrunching"  algorithms, 
  373.                that  is  up to and including Squashing. NARC  is  compatible 
  374.                with ARC.EXE version 5.21 and PKxARC. NARC supports Squashing 
  375.                which  is  nothing  more than a variation  of  the  crunching 
  376.                algorithm,  yet it is the easiest (and most logical)  of  the 
  377.                crunching methods to code. I have heard a lot of criticism of 
  378.                squashing,  but  those folks need to get up with  the  times, 
  379.                squashing  is  (and  should  be)  here  to  stay.  NARC  also 
  380.                recognizes  the  .ARK extension soon to be prevalent  in  the 
  381.                CP/M world via Bob Freed's CP/M archive facility, NOAH.
  382.  
  383.  
  384.            Author's Ramblings
  385.  
  386.  
  387.                System Enhancement Associates, I am told is dropping the ball 
  388.                as far as ARC.EXE goes. I think that Thom Henderson  deserves 
  389.                a great round of applause for his contribution and help  with 
  390.                a   formidable  problem,  namely,  storage  space  (or   lack 
  391.                thereof).
  392.  
  393.                The  oldest  version of ARC.EXE that I can  find  is  version 
  394.                3.10, released 5-1-85. This version supports storage  methods 
  395.                up  to and including squeezing (no crunching). If anyone  has 
  396.                an older version I would be interested in seeing it. Here  is 
  397.                a list of the versions that I do have and would be interested 
  398.                in getting any other versions floating around.
  399.  
  400.                  3.10    4.10    4.50    4.52    5.00    5.10    5.12    5.20
  401.  
  402.  
  403.                        ═════════════════════════════════════════
  404.                        ARCHIVE STORAGE METHODS SUPPORTED BY NARC
  405.                        ═════════════════════════════════════════
  406.  
  407.  
  408.  
  409.                          Packing         - all versions
  410.                          Squeezing       - Huffman Coding
  411.                          Crunching       - all versions (LZW encoding)
  412.                          Squashing       - one version
  413.  
  414.  
  415.          Note: LZW stands for Lempel-Ziv-Welch
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.      NARC.DOC   Copyright (c) 1987,88   Infinity Design Concepts, Inc.
  426.           
  427.                                      Page 2
  428.  
  429.            OverView...
  430.  
  431.                When  NARC is first invoked, it saves the current  drive/path 
  432.                for  use  again  on  exit, so you always  end  up  where  you 
  433.                started.  Some  folks like that and some don't.  I  DO.  NARC 
  434.                first searches the default path for ARC/ARK files and if  any 
  435.                are found they are displayed in a window on the left side  of 
  436.                the  screen. The arrow keys (or the mouse),  PgUP,PgDN,  Home 
  437.                and  End may be used to move the cursor bar up and  down  the 
  438.                window,  there  are two ways to select  the  highlighted  ARC 
  439.                file.
  440.  
  441.                  (1) Hit the ENTER key
  442.                  (2) Press the left mouse button
  443.  
  444.  
  445.                After  selecting the sub-file of interest, NARC displays  all 
  446.                of the ARC sub-files and their statistics on the screen.  You 
  447.                are  also given a menu bar at the bottom of the  screen.  You 
  448.                may use the arrow keys or the mouse to move the cursor bar to 
  449.                the desired selection and then select with the  ENTER key  or 
  450.                the  left mouse button. As the cursor bar is moved,  you  are 
  451.                also given a brief description of the highlighted command.  A 
  452.                file may be located in the list by the now common  ALT-letter 
  453.                key  combination.  This  applies to all menus  in  NARC.  The 
  454.                commands will now be discussed individually.
  455.  
  456.          Note: You may also select any option from the command bar by
  457.                entering the first letter of the command.
  458.  
  459.  
  460.                 The ESCape key will abort any operation or window.
  461.  
  462.  
  463.                                         Video Modes
  464.  
  465.  
  466.                NARC  will  determine  whether a monochrome  or  color  video 
  467.                adapter  is being used and act accordingly. If a CGA  or  EGA 
  468.                card  is detected, then NARC will select 80 x 25 color  mode, 
  469.                unless  color  has been turned off with  NARCCFG.  The  users 
  470.                video  mode is saved when NARC is invoked and  restored  upon 
  471.                exit or shell.
  472.  
  473.                                        Mouse Support
  474.  
  475.                NARC will determine if a mouse driver is present. If so, then 
  476.                NARC's mouse support routines are enabled and working at  all 
  477.                times  within  the  program. The  left  mouse  button  ALWAYS 
  478.                emulates the ENTER key (for selecting highlighted items)  and 
  479.                the  right  mouse  button ALWAYS emulated the  ESC  key  (for 
  480.                aborting  operations). Highlight bar movement can  always  be 
  481.                accomplished  with  mouse motion. The  sensitivity  of  mouse 
  482.                motion  can be changed with NARCCFG. The mouse routines  were 
  483.                written  with the Microsoft mouse in mind and any mouse  that 
  484.                is compatible with the Microsoft mouse should work.
  485.  
  486.  
  487.      NARC.DOC   Copyright (c) 1987,88   Infinity Design Concepts, Inc.
  488.           
  489.                                      Page 3
  490.  
  491.                                            Sound
  492.  
  493.                NARC  makes use of the 8253 programmable interval timer  chip 
  494.                and  speaker port to create some gurgles,bleeps,whistles  and 
  495.                burps  in general, that some folks like and some  don't.  The 
  496.                chip  is  programmed for square wave output in  mode  3.  The 
  497.                sound   may  be  permanently  disabled  with  NARCCFG.   NARC 
  498.                determines   microprocessor  speed  and  adjusts  the   sound 
  499.                routines  accordingly so that the sounds are pretty much  the 
  500.                same on all machines.
  501.  
  502.  
  503.                                    ENVIRONMENT VARIABLES
  504.  
  505.  
  506.                If  you  don't  know what an environment  variable  is,  then 
  507.                continue  reading. If you DO know, then skip to  "The  Goods" 
  508.                section below.
  509.  
  510.                      What are they ?
  511.  
  512.                An  environment variable is a convenient way for programs  to 
  513.                communicate  with DOS or with each other through  a  commonly 
  514.                shared  spot(s) in memory. If you type "SET" <ENTER>  at  the 
  515.                DOS prompt, DOS will respond by showing you the current  spot 
  516.                of  shared memory which we call the environment.  These  text 
  517.                strings can be created,read, modified and deleted at any time 
  518.                by any program. Each variable has a certain format that  must 
  519.                be adhered to. The format is as follows,
  520.  
  521.                      variable_name = string
  522.  
  523.                 An example would be  IDCED=C:\UTILITY\WS
  524.  
  525.                Spaces  are  allowed before and after the  equal  sign.  This 
  526.                variable  will mean absolutely nothing to DOS, but, to  NARC, 
  527.                it  will show the way to your editor. The variable name  here 
  528.                is  IDCED  and  the  string is  C:\UTILITY\WS  which  is  the 
  529.                pathname  for  finding WordStar on the disk. You  can  change 
  530.                this  string  to anything you want by simply typing  ---  SET 
  531.                IDCED=  (and type your pathname for your editor).  NARC  uses 
  532.                several  of these environment variables to  communicate  with 
  533.                you and you should set them up in your AUTOEXEC.BAT file.
  534.  
  535.                What do I do if DOS says, "Out of Environment Space" ?
  536.  
  537.                DOS reserves only so much space for the environment  strings, 
  538.                and if you have a long search path or a lot of strings,  then 
  539.                you  may run out of space. I can offer two  suggestions,  one 
  540.                for DOS 3.1 and one for DOS 3.2. There is a "switch" that you 
  541.                can add to your CONFIG.SYS file (If you don't have one,  then 
  542.                you  should  !).  One of the lines in  your  config.sys  file 
  543.                should  read Shell=C:\COMMAND.COM or something  similar.  You 
  544.                can  add  the following to the end of this line  to  increase 
  545.                your environment space.
  546.  
  547.  
  548.  
  549.      NARC.DOC   Copyright (c) 1987,88   Infinity Design Concepts, Inc.
  550.           
  551.                                      Page 4
  552.  
  553.                      DOS 3.1 -      /E:nn    where nn = 10 up to 62. This
  554.                                              number times 16 is the length
  555.                                              of your environment.
  556.  
  557.                           example:  Shell=c:\command.com /E:10
  558.  
  559.                                     This would reserve 160 bytes.
  560.  
  561.                      DOS 3.2 - add  /E:nnnn  where nnnn is the actual
  562.                                              number of bytes to reserve.
  563.  
  564.                           example: comspec=c:\command.com /E:160
  565.  
  566.                                     This would reserve 160 bytes.
  567.  
  568.                 The Goods ..
  569.  
  570.                      IDCED=c:\editors\ws
  571.  
  572.                           Use this variable to tell NARC where your
  573.                           editor is located, so that when the F9 key is
  574.                           pressed to invoke the editor, NARC will know
  575.                           where to locate it. The drive and path and editors
  576.                           name must be given (in upper or lower case). The
  577.                           file extension (.COM or .EXE) must NOT be given.
  578.                
  579.                      IDCARCPATH=c:\utility\idc-arc
  580.  
  581.                           Use this variable to tell IDC-ARC where to find
  582.                           IDC-ARC when the "I" key is pressed. As with IDCED,
  583.                           the drive and path and filename must be given,
  584.                           but NOT the extension.
  585.  
  586.                      NARCHELP=c:\utility\narchelp.hlp
  587.  
  588.                           Use this variable to tell NARC where to find
  589.                           the NARC help file when the F1 key is pressed.
  590.  
  591.  
  592.                      IDCTEMP=e:\ramdisk
  593.  
  594.                           Use this variable to tell NARC where it can
  595.                           place temporary work files. If you have a ramdisk
  596.                           set up, then this would be a good use for it since
  597.                           all file operations will be MUCH faster from
  598.                           the ramdisk.
  599.  
  600.                                THE HELP SCREEN
  601.  
  602.  
  603.                From the files screen, it is always possible to get a context 
  604.                sensitive help screen. Hitting the F1 or F10 key will cause a 
  605.                full  screen of help to pop up that has information  specific 
  606.                to the command that the cursor bar was pointing to.
  607.  
  608.                Once the help window is opened up, it is then possible to get 
  609.                help  on any of the commands. The Home key will take  you  to 
  610.  
  611.      NARC.DOC   Copyright (c) 1987,88   Infinity Design Concepts, Inc.
  612.           
  613.                                      Page 5
  614.  
  615.                the help index (as will the "I" key). The window may be   put 
  616.                at any time with the ESC key.
  617.  
  618.                NOTE: There are several commands that are listed under
  619.                      miscellaneous commands in the INDEX section of the
  620.                      help screens, so be sure to check them out.
  621.  
  622.  
  623.                                    ════════
  624.                                    COMMANDS
  625.                                    ════════
  626.  
  627.  
  628.            ═══════════════
  629.            Extract Command
  630.            ═══════════════
  631.  
  632.                Selecting  this  option  will  cause  another  prompt  to  be 
  633.                displayed, asking whether you wish to extract the highlighted 
  634.                file or tagged files. (Files are tagged with the space  bar). 
  635.                "Point  and shoot" here again as before. The ESC key  or  the 
  636.                right  mouse  button will abort the operation.  If  the  disk 
  637.                becomes  full,  you will be informed and have the  option  of 
  638.                aborting or continuing.
  639.  
  640.  
  641.            Highlighted File
  642.  
  643.                When EXTRACT is selected, you will be asked for a  drive/path 
  644.                to  extract the file to. If you simply hit ENTER or the  left 
  645.                mouse  button,  the  file will be extracted  to  the  default 
  646.                drive/path. You may also enter any valid DOS drive/path.  The 
  647.                ESC key or the right mouse button will abort the operation.
  648.          
  649.                 NOTE: Control-R can be used to recall the last path that
  650.                       files were extracted to.
  651.  
  652.            Tagged Files
  653.  
  654.                The  Space bar (or F3 key) is used to TAG the  current  file. 
  655.                When  a  file is tagged, a diamond will be displayed  on  the 
  656.                line with the current file in column 80.  The space bar  will 
  657.                also unTAG a file, thus it is a "toggle". When the space  bar 
  658.                is pressed, a diamond will appear as described above and  the 
  659.                cursor  bar  will move to the next file.  When  the  "TAGGED" 
  660.                option is selected from the command line, all files that have 
  661.                been tagged, will be extracted to the SAME drive/path.
  662.  
  663.                After  the file is extracted, it's date and time are  set  to 
  664.                those contained in the ARC file. The file is also checked for 
  665.                size and CRC, if both of these do not match exactly what  was 
  666.                contained in the ARC file header, then an error has  occurred 
  667.                and  the user is notified. The files will also remain  tagged 
  668.                after the extraction.
  669.  
  670.  
  671.  
  672.  
  673.      NARC.DOC   Copyright (c) 1987,88   Infinity Design Concepts, Inc.
  674.           
  675.                                      Page 6
  676.  
  677.            ════════════
  678.            View Command
  679.            ════════════
  680.  
  681.                This  option will display the currently highlighted  file  on 
  682.                the screen. The PgUP, PGDN, Home and End keys, as well as the 
  683.                cursor  keys allow movement through the file. The file to  be 
  684.                viewed  is  first  extracted  to the  default  drive  (or  to 
  685.                whereever  the  IDCTEMP  variable points) to  a  file  called 
  686.                NARC.TMP.  This file is deleted when the view is  ended.  The 
  687.                extraction  is performed due to the sequential nature of  ARC 
  688.                files,  which makes it nearly impossible to perform the  page 
  689.                up,down  operations  on the compressed file itself.  If  NARC 
  690.                finds that there is not enough disk space or directory  space 
  691.                to create NARC.TMP, you will be asked for another drive where 
  692.                the temporary file can be created.
  693.  
  694.                The  newest addition to the view command in NARC 2.1  is  the 
  695.                text search command. Simply hit "S" and you will be  prompted 
  696.                for  a  string  to  find. When  located,  the  text  will  be 
  697.                highlighted  on  the screen, otherwise a  message  is  issued 
  698.                stating  that  the  text was not found. The  search  is  case 
  699.                insensitive,  that  is  you may enter  upper  or  lower  case 
  700.                letters and NARC will find a match.
  701.  
  702.                 The mouse is also supported now in the view function.
  703.  
  704.            ═════════════
  705.            Print Command
  706.            ═════════════
  707.  
  708.                The  print option will print the currently highlighted  file. 
  709.                After  selecting  the print option, you will be  asked  which 
  710.                character  pitch you want to print in. Enter the number  that 
  711.                you wish (or 0 for the default pitch) and the printer will be 
  712.                set to that pitch.
  713.  
  714.          NOTE: The printer strings that come installed with NARC are compatible
  715.                with EPSON printer strings. If you wish to install NARC with
  716.                your own strings, see NARCCFG.DOC for complete instructions.
  717.  
  718.                After selecting selected the printer pitch, you will be  shown 
  719.                three more options for formatting the printout. Use the arrow 
  720.                keys to move left and right. The space bar is used to  toggle 
  721.                the  options ON or OFF. When you have finished and are  ready 
  722.                to  print, hit ENTER (or left mouse button). The ESC  key  or 
  723.                the  right mouse button will abort at any time.  The  options 
  724.                are;
  725.  
  726.                  Format -        YES - This option causes NARC to format the
  727.                                        output with page breaks and page numbers.
  728.                                  NO  - NARC does not format the file.
  729.  
  730.          The following two options work independently of the Format option.
  731.  
  732.                  Strip High -    YES - NARC will strip the high bit off each
  733.                                        character before it is sent to the
  734.  
  735.      NARC.DOC   Copyright (c) 1987,88   Infinity Design Concepts, Inc.
  736.           
  737.                                      Page 7
  738.  
  739.                                        printer. Some word processors set this
  740.                                        high bit on some characters as a means of
  741.                                        text formatting. These characters will
  742.                                        print as garbage usually.
  743.                                  NO  - NARC will not strip the high bit.
  744.  
  745.                  Strip Control - YES - NARC will strip all control characters
  746.                                        from the file before it is printed. This
  747.                                        is useful on files that have embedded
  748.                                        formatting characters, and you wish to
  749.                                        have NARC provide the formatting.
  750.                                  NO  - NARC will not strip the control chars.
  751.  
  752.                NOTE: On all of the following windows, the PG UP, PG DN,
  753.                      HOME and END keys in addition to the cursor keys
  754.                      allow movement through the window.
  755.  
  756.  
  757.            ════════════════
  758.            ARC-wind Command   
  759.            ════════════════
  760.  
  761.                This  option  will display the window containing all  of  the 
  762.                ARC/ARK  files in the current sub-directory. Move the  cursor 
  763.                bar up and down with the mouse or arrow keys and select  with 
  764.                the  ENTER key or left mouse button.
  765.  
  766.            ════════════════
  767.            DRV-wind Command
  768.            ════════════════
  769.  
  770.                This  option  will pop up a window that contains all  of  the 
  771.                logical drives that DOS reports to NARC. Select as before and 
  772.                the ARC-window will be popped up so that you can then  choose 
  773.                an ARC file to examine.
  774.  
  775.            ═══════════════
  776.            DirTree Command
  777.            ═══════════════
  778.  
  779.                This command is totally new with release 2.1. The old  window 
  780.                approach  won a lot of criticism and rightfully so. I  had  a 
  781.                tree  routine that I wrote some time ago, that I just  wasn't 
  782.                happy with speed-wise and didn't want to stick that thing  in 
  783.                NARC. I did have some nice ideas for a new routine that would 
  784.                be  much faster and slicker all around and finally  found  the 
  785.                time to write it and NARC  release 2.1 has it, you may  judge 
  786.                for yourself.
  787.  
  788.                A  visual tree is presented that displays all  subdirectories 
  789.                on the disk. Once the tree has been read, NARC will not  read 
  790.                it again, unless you have changed drives.
  791.  
  792.                From  the  tree, you can create  and  delete  subdirectories, 
  793.                select  a new drive or subdirectory or return with no  action 
  794.                at all. The ESC key will abort the tree operations.
  795.  
  796.  
  797.      NARC.DOC   Copyright (c) 1987,88   Infinity Design Concepts, Inc.
  798.           
  799.                                      Page 8
  800.  
  801.  
  802.            ════════════
  803.            Quit Command
  804.            ════════════
  805.  
  806.                The  exit  comand  now has an exit prompt that  asks  if  you 
  807.                really wish to exit the program. This was done since the  ESC 
  808.                key  (or  right mouse button) will back out of  any  and  all 
  809.                menus/selections  and  this  prompt  will  prevent  you  from 
  810.                arbitrarily backing out of the program altogether. Note  that 
  811.                ONLY  "Y"  or  "y" will exit the program,  anything  else  is 
  812.                assumed to be "NO exit".
  813.  
  814.  
  815.            ══════════════════
  816.            ALTERNATE COMMANDS
  817.            ══════════════════
  818.  
  819.                The  extra commands can be located on the help screens,  which 
  820.                are invoked by the F1,F10 or ? keys.
  821.  
  822.            F1 - key
  823.                 Invokes the context sensitive help system.
  824.  
  825.            F2 - key
  826.                This  keys  function varies with the window that  is  on  the 
  827.                screen  at any one time. When an ARC file is opened  and  the 
  828.                subfile  list is onscreen, this key will pop up the ARC  file 
  829.                window  again.  Any  other use of this key is  given  at  the 
  830.                appropriate time on the screen.
  831.  
  832.            F3 - key
  833.                This key will tag a subfile and move the cursor bar on to the 
  834.                next subfile. This key also has other functions, and they are 
  835.                also shown on the screen when necessary.
  836.  
  837.            F4 - key
  838.                The  F4  key  will  print an image of  the  screen  less  the 
  839.                advertisement and command lines. 
  840.  
  841.            F5 - key
  842.                Invokes  the NARC-DOS command processor.  You may then  enter 
  843.                any  valid DOS command.  When  finished,  simply  hit   ENTER   
  844.                by  itself  and you will be returned to NARC.  You  may  also 
  845.                enter   "COMMAND"  which  will  invoke  a  second   copy   of 
  846.                COMMAND.COM, if the file COMMAND.COM is in your search  path. 
  847.                To return to NARC, you would then type "EXIT". 
  848.  
  849.            F6 - key
  850.                This  key  will tag all of the subfiles in  the  ARChive  for 
  851.                subsequent extraction.
  852.  
  853.            F7 - key
  854.                This key will invert all of the tags on the subfiles, that is 
  855.                all  files  that were tagged will become untagged  and  vice-
  856.                versa.
  857.  
  858.  
  859.      NARC.DOC   Copyright (c) 1987,88   Infinity Design Concepts, Inc.
  860.           
  861.                                      Page 9
  862.  
  863.            F9  - key
  864.                 This key will call your editor. Note that you MUST have
  865.                 first set up the environment variable IDCED before this
  866.                 function  can  be  used.  See  the  section  on  environment 
  867.                variables.
  868.  
  869.            F10 - key
  870.                  This key will call up the context sensitive help system.
  871.  
  872.        ALT-F10  - key
  873.                 This sequence displays the trivia screen, where your serial
  874.                 number and other information is located.
  875.  
  876.            (F)ind command.
  877.                Will  prompt for a wildcard filename to find in the  sub-file 
  878.                list. Any number of characters may be used, for example,  you 
  879.                may  enter  a single character and NARC will find  the  first 
  880.                file  whose name begins with that  character.  Alternatively, 
  881.                you may enter a complete wildcard specification and NARC will 
  882.                attempt to find a match.
  883.  
  884.            (K)ill file command.
  885.                Will  remove  the  currently highlighted  sub-file  from  the 
  886.                ARChive.  No additional disk space is required for  temporary 
  887.                files.
  888.  
  889.          PgUP,PgDN,Home and End
  890.                These keys do what you might expect.  These functions work in 
  891.                all windows.
  892.  
  893.             (S)et search spec command.
  894.                When  NARC searches the current directory for archive  files, 
  895.                it normally searches for .ARC and .ARK files. The .ARK may be 
  896.                changed  to  another extension (or wildcard  extension)  with 
  897.                this command. All subsequent searches will use both the  .ARC 
  898.                extension  and  the newly defined mask. This command  may  be 
  899.                used from the ARC file window or from the subfile screen.
  900.  
  901.                The extension may also be passed from the command line. Enter 
  902.                NARC /h for complete information.
  903.  
  904.             (I)dc-arc command.
  905.                 This   command   will  run  IDC-ARC.EXE.   Note   that   the 
  906.                environment  variable IDCARCPATH must be set up  before  this 
  907.                command   will  work,  unless  IDC-ARC  is  in  the   current 
  908.                directory. IDC-ARC is the companion program to NARC and  will 
  909.                be  released  in April - 88. This command provides  a  simple 
  910.                link  between  the  arcing  functions  of  IDC-ARC  (and  its 
  911.                copy/rename/delete/print/view  etc...) functions.  Note  that 
  912.                NARC  can  also be called from IDC-ARC via  its  "N"  command 
  913.                along with a filename.
  914.  
  915.                               THE NARC COMMAND LINE PROCESSOR
  916.  
  917.                A  command line processor has been added that  is  compatible 
  918.                with  both ARC and PKXARC. There are some variations  on  the 
  919.                implementation   of  these  commands  that  are  not   wholly 
  920.  
  921.      NARC.DOC   Copyright (c) 1987,88   Infinity Design Concepts, Inc.
  922.           
  923.                                      Page 10
  924.  
  925.                compatible  with  ARC and PK. For example, the  ONLY  command 
  926.                that  operates on wildcard subfiles is the  extract  command. 
  927.                The "T" (test ARC integrity command) will simply open the ARC 
  928.                file  and display the main NARC screen. This is  done,  since 
  929.                NARC does the integrity check when reading the ARC file.  The 
  930.                "D"  (delete subfile) command will only delete one file at  a 
  931.                time.  This  is done since it is very seldom that  files  are 
  932.                deleted  from  an  ARC anyway and the wildcard  can  be  very 
  933.                dangerous.
  934.  
  935.          Command line syntax:
  936.  
  937.                  NARC  [command] [ARC file] [submask]
  938.  
  939.          where;
  940.  
  941.          [command]      may be any of the following and may be preceded by 
  942.                         "-" or "/"
  943.  
  944.                  D,-D                    = delete submask file from ARCmask
  945.                  X,-X,E,-E               = extract submask file(s) from ARCmask
  946.                  P,-P                    = print submask file from ARCmask
  947.                  V,-V,L,-L,T,-T,Z,-Z     = open ARCmask file and display files
  948.                  C,-C                    = view submask file in ARCmask
  949.                  H                       = shows command line options
  950.  
  951.          [ARC file]      may be any ARC file with or without the extension. An
  952.                          extension of .ARC is assumed, but may be explicitly
  953.                          included as .ARC or .ARK. The drive/path may also be
  954.                          included.
  955.  
  956.          [submask]       may be any valid wildcard filename.
  957.  
  958.                                    TRIVIA STATUS SCREEN
  959.  
  960.                This  screen shows some useful information about the  current 
  961.                NARC  environment.  It is invoked with  the  ALT-F10  command 
  962.                sequence from the subfiles screen.
  963.  
  964.  
  965.                        Operating Hints and Philosophy and Shortcuts
  966.  
  967.  
  968.  
  969.                When NARC is first invoked, it pops up the window showing all 
  970.                of  the ARC files in the current directory. The  first  thing 
  971.                that you must always do is to select an ARC file. The  reason 
  972.                for this is that  when I want to look inside an  ARC  file, I 
  973.                will move to that drive/directory  and then  call NARC.  This 
  974.                saves me from having to select where I want to look and  what 
  975.                drive  and all that mess.  This way, when the  program  comes 
  976.                up, I can go right to work.
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.      NARC.DOC   Copyright (c) 1987,88   Infinity Design Concepts, Inc.
  984.           
  985.                                      Page 11
  986.  
  987.                NOTE:  When  the ARC file window is onscreen,  you  may  also 
  988.                choose  another  file  extension beside  .ARK  with  the  "S" 
  989.                command.  See the section entitled "Using extensions  besides 
  990.                .ARC and .ARK.
  991.  
  992.                When there are no windows popped up, the "A" key (or F2  key)  
  993.                will  pop  up the  ARC file window, regardless of  where  the 
  994.                command line cursor bar is. This is handy when you have a lot 
  995.                of  ARC's  that you want to thumb  through, with just  the  2  
  996.                mouse  buttons or ENTER and  F2  keys,  you can look  through 
  997.                a whole directory of ARC files in nothing flat !  Also  along  
  998.                these lines, when the ARC window is on the screen, the  right 
  999.                mouse button or the ESCape key will exit the program.
  1000.  
  1001.  
  1002.                NARC buffers 64k of the input file at one time, thus speeding 
  1003.                up  file operations.  The output buffer is 32k and should  be 
  1004.                larger  in the next version. NARC requires about 194K of  RAM 
  1005.                to operate.
  1006.  
  1007.                     (This prime advertising space for rent)
  1008.  
  1009.  
  1010.  
  1011.                Note  that  the  arrows keys may be used to  move  the  error 
  1012.                message box up and down the screen. This feature is  provided 
  1013.                so that if the message covers up something on the screen that 
  1014.                you would like to see, you may move the box.
  1015.  
  1016.  
  1017.                             ══════════════════════
  1018.                                 Error Messages.
  1019.                             ══════════════════════
  1020.  Memory Allocation Error.
  1021.          - NARC allocates memory when it is invoked, this says that DOS told
  1022.            NARC that there was not enough memory left to run the program
  1023.  
  1024.  ERROR: Extraction Failed due to CRC error, Hit ENTER
  1025.          - After a file is extracted, the CRC contained in the ARC header is
  1026.            compared to the CRC that NARC calculates, this message says  that
  1027.            the two were different. This is the CRC-16 polynomial.
  1028.  
  1029.  ERROR: Extraction Failed due to FileSize error
  1030.          - Same as above, except with filesize
  1031.  
  1032.  ERROR: Disk File Inconsistency.  Hit ENTER
  1033.          - This will usually mean that the user has swapped disks just after
  1034.            telling NARC to View,Print or Extract and NARC does not recognize
  1035.            the file.
  1036.  
  1037.  ERROR: Incompatible Crunch Format
  1038.          - Says that either the stowage code for this file is not supported by
  1039.            NARC -OR- there is an error in the ARC header
  1040.  
  1041.  ERROR: Extraction Failed due to Lack of Disk Space - (A)bort (C)ontinue
  1042.          - Abort will stop tagged extraction, continue will try to fit next
  1043.            file. 
  1044.  
  1045.      NARC.DOC   Copyright (c) 1987,88   Infinity Design Concepts, Inc.
  1046.           
  1047.                                      Page 12
  1048.  
  1049.  Squeezed File Has a Diseased Decode Tree.
  1050.          - When unsqueezing a file, NARC has found a bad entry in the decode
  1051.            table.
  1052.  
  1053.  ERROR: No directory space on destination!
  1054.          - Self explanatory
  1055.  Bad Path Name, Hit ENTER
  1056.          - The destination path that the user entered for extraction is not
  1057.            a valid DOS pathname, re-enter.
  1058.  
  1059.  Requires DOS version 2.0 or above.
  1060.          - NARC requires DOS 2.0 or above to operate.
  1061.  
  1062.  Invalid archive file format
  1063.          - NARC could not find any ARC headers, this is probably not an ARC file
  1064.  
  1065.  Warning: Bad archive file header, bytes  skipped = xxxxx
  1066.          - If an entry has a bad header, NARC will examine the next 64k bytes
  1067.            looking for a good header.  This is to maintain compatibility with
  1068.            ARC v.5.20 which allows self-unpacking ARC files.
  1069.  
  1070.  Unexpected end of  ARChive file
  1071.          - Says that NARC couldn't find the last ARC header
  1072.  
  1073.  No matching file(s) in ARChive
  1074.          - ARC file is empty
  1075.  
  1076.  
  1077.  Cannot create work file, enter drive for temporary file
  1078.  
  1079.          - there was not enough directory space or disk space to
  1080.            create NARC.TMP for viewing. Enter a drive letter where
  1081.            NARC can create the necessary work file. The file will
  1082.            be deleted when the view has ended.
  1083.   
  1084.                  ════════════════════════════════════════════
  1085.                  ARCHIVE FILE FORMATS AND GENERAL INFORMATION
  1086.                  ════════════════════════════════════════════
  1087.  
  1088.  
  1089.                 For Those With a Little More Curiosity...
  1090.  
  1091.  
  1092.  
  1093.                The following are the currently supported stowage methods.
  1094.  
  1095.                 1    unpacked (obsolete)
  1096.                 2    unpacked
  1097.                 3    packed
  1098.                 4    squeezed (after packing)
  1099.                 5    crunched (obsolete)
  1100.                 6    crunched (after packing) (obsolete)
  1101.                 7    crunched (after packing, using faster hash algorithm)
  1102.                 8    crunched (after packing, using dynamic LZW variations)
  1103.                 9    Squashed c/o Phil Katz (no packing) (var. on crunching)
  1104.  
  1105.                 NOTE:    LZW is Lempel-Ziv-Welch crunching algorithm
  1106.  
  1107.      NARC.DOC   Copyright (c) 1987,88   Infinity Design Concepts, Inc.
  1108.           
  1109.                                      Page 13
  1110.  
  1111.                          A little about the stowage methods.
  1112.  
  1113.                 Packing -
  1114.  
  1115.                This is the simplest of the storage methods. Suppose that you  
  1116.                have  a  line of  text  and at the end of the line, you  have 
  1117.                40 spaces. These 40 spaces are compressed into 3 bytes in the 
  1118.                ARC  file  by the "packer". The first  byte  is  the   actual 
  1119.                character  to be expanded (in our case a space).  The  second  
  1120.                byte is a special  "flag" byte that indicates that we need to 
  1121.                expand  these bytes when we extract the file. The third  byte 
  1122.                is  the count byte (in our case it would be 40). So  you  can 
  1123.                see that any time the ARC'er finds repeated bytes like  this, 
  1124.                it  can  compress them into 3 bytes. The  anomalous  case  to 
  1125.                watch  out  for  here  is when the count  byte  is  the  same 
  1126.                character  as the "flag" byte, this proved to be a  difficult 
  1127.                roach to kill !
  1128.  
  1129.  
  1130.  
  1131.  
  1132.  
  1133.  
  1134.  
  1135.  
  1136.  
  1137.  
  1138.  
  1139.  
  1140.  
  1141.  
  1142.  
  1143.  
  1144.  
  1145.  
  1146.  
  1147.  
  1148.  
  1149.  
  1150.  
  1151.  
  1152.  
  1153.  
  1154.  
  1155.  
  1156.  
  1157.  
  1158.  
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.      NARC.DOC   Copyright (c) 1987,88   Infinity Design Concepts, Inc.
  1170.           
  1171.                                      Page 14
  1172.  
  1173.                             ══════════════════════════
  1174.                             HUFFMAN CODING (SQUEEZING)
  1175.                             ══════════════════════════
  1176.  
  1177.  
  1178.  
  1179.                It  does, at first, seem that making a file smaller would  be 
  1180.                an  impossible  task. I will make an attempt here to  shed  a 
  1181.                little light on this subject since that is a question that  I 
  1182.                hear pretty frequently and it is not a two minute  discussion 
  1183.                question. It does require some thought.
  1184.  
  1185.                To  compress  a  file with the  Huffman  algorithm,  commonly 
  1186.                called squeezing,  the  first  thing  that  must  be done  is 
  1187.                to  read the file completely and  count the   occurrences  of 
  1188.                each  character. That is you count the "A" 's and the "B"  's 
  1189.                and  so  forth.  There are 256 characters  in  the   extended  
  1190.                ASCII    character   set,  of  which  approximately  90   are 
  1191.                "printable",   that is you can see  them on the  screen.  The 
  1192.                IBM   set  has  more  "printables",   but  that  is   of   no 
  1193.                consequence, since the squeezer deals  only with  the numbers 
  1194.                and  doesn't  care whether or not the file is an  ASCII  text 
  1195.                file  or  an EXE file.  Once  the squeezer  has  counted  the 
  1196.                occurrences   of  each  character,  thus  the  frequency   of 
  1197.                occurrence,  it  scans  the  table  for the  characters  that 
  1198.                appear  the least number of times  and  forms  an   imaginary  
  1199.                link  between  them,  called a node. Somewhere  else  in  the  
  1200.                tree,  we will  later develop a pointer that points  to  this  
  1201.                node.   When   you   start   putting  all  of  these   things 
  1202.                together,  you  will form a binary tree in  memory.  Confused 
  1203.                enough ? Let us try an example.
  1204.  
  1205.                We   have   a   file   that  is 100  bytes  long  and  has  6 
  1206.                different  characters   in   it.    We   have   counted   the 
  1207.                occurrence of each of the characters and found the following.
  1208.  
  1209.  
  1210.                  quantity        character
  1211.  
  1212.                           5 -    D
  1213.                          10 -    A
  1214.                          10 -    F
  1215.                          20 -    B
  1216.                          25 -    E
  1217.                          30 -    C
  1218.  
  1219.                The spelling in the file wasn't very good, but we don't care. 
  1220.                Now we take these numbers and  will call them  the  frequency 
  1221.                of each character.  We then  arrange the table as below. This 
  1222.                is  an arbitrary arrangement, but it is useful here so as  to 
  1223.                make  our tree readable on the screen. The arrangement  makes 
  1224.                no difference.
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.      NARC.DOC   Copyright (c) 1987,88   Infinity Design Concepts, Inc.
  1232.           
  1233.                                      Page 15
  1234.  
  1235.                 Frequency        20      10      5       10      30      25
  1236.  
  1237.                 Character        B       A       D       F       C       E
  1238.  
  1239.  
  1240.                We then examine the table to find the two characters with the 
  1241.                smallest frequency of occurrence. In our  case, it is obvious 
  1242.                that  one  of  them  is 5,but which 10 do we  choose.  As  it 
  1243.                turns  out, it doesn't matter which one you choose,  we  will 
  1244.                arbitrarily choose the F. We draw lines from the D and the  F 
  1245.                to form our node (the box below).
  1246.  
  1247.  
  1248.                 Frequency        30      10     5        10      20      25
  1249.  
  1250.                 Character        C       A      D         F       B       E
  1251.                                                 \        /
  1252.                                                  \      /
  1253.                                                    ╔══╗
  1254.                                                    ║15║ = 5 + 10
  1255.                                                    ╚══╝
  1256.  
  1257.  
  1258.                The number in the box is the sum  of the  frequencies  of the 
  1259.                D   and  F characters. Now we again look for the  lowest  two 
  1260.                frequencies, except, this time we do not consider the D and F 
  1261.                characters  individually, we instead consider the  node.  The 
  1262.                lowest two now are the A and  the node, that is 10 and 15. We 
  1263.                again do some artwork.
  1264.  
  1265.  
  1266.                Frequency      30      10         5        10      20      25
  1267.  
  1268.                Character       C      A          D         F       B      E
  1269.                                       \          \       /               
  1270.                                        \          \     /
  1271.                                         \          ╔══╗
  1272.                                          \         ║15║ = 5 + 10
  1273.                                           \        ╚══╝
  1274.                                            \      /
  1275.                                             \    / 
  1276.                                              ╔══╗
  1277.                                              ║25║ = 10 + 15
  1278.                                              ╚══╝
  1279.  
  1280.  
  1281.                We  look  at  the  table  again  for  the  next  two   lowest 
  1282.                frequencies  and   now find B and E .  We continue   in  this  
  1283.                fashion  until the entire "tree" is built, that is  until  it 
  1284.                all  condenses  to  one  node. The  leaves  are   the  actual  
  1285.                characters  at  the top of the tree and the  nodes  represent 
  1286.                branch joints with the root at the bottom.
  1287.  
  1288.  
  1289.  
  1290.  
  1291.  
  1292.  
  1293.      NARC.DOC   Copyright (c) 1987,88   Infinity Design Concepts, Inc.
  1294.           
  1295.                                      Page 16
  1296.  
  1297.                 Frequency    30        10        5        10    20        25
  1298.  
  1299.                 Character    C         A        D         F     B        E
  1300.                               \         \       \         /      \       /
  1301.                                \         \       \       /        \     /
  1302.                                 \         \         ╔══╗            ╔══╗
  1303.                                  \         \        ║15║            ║45║
  1304.                                   \         \       ╚══╝            ╚══╝
  1305.                                    \         \      /              /
  1306.                                     \         \    /              /
  1307.                                      \         ╔══╗              /
  1308.                                       \        ║25║             /
  1309.                                        \       ╚══╝            /
  1310.                                         \       /             /
  1311.                                          \     /             /
  1312.                                           ╔══╗              /
  1313.                                           ║55║             /
  1314.                                           ╚══╝            /
  1315.                                             \            /
  1316.                                              \          /
  1317.                                                 ╔════╗
  1318.                                                 ║ROOT║
  1319.                                                 ╚════╝
  1320.  
  1321.  
  1322.                Now  that  our tree is made up, we can encode  the  file.  We 
  1323.                start  at  the root (always). To encode the  first  character 
  1324.                (leaf) of the tree (the letter C), we trace up the tree until 
  1325.                we  hit  the letter C at  the top. Along our journey,  if  we 
  1326.                make  a  left turn, we record a 0 bit, and a 1  for  a  right 
  1327.                turn.  So for the C, we would go left to 55 (and record a  0) 
  1328.                and then left again to the letter C (and record another 0),so 
  1329.                the Huffman code for our letter C is 00. For A we go left  to 
  1330.                55,  right  to 25 and left to A and it becomes 010. By  doing 
  1331.                all of the letters  this way, we find the following.
  1332.  
  1333.  
  1334.                          C = 00          ( 2 bits )
  1335.                          A = 010         ( 3 bits )
  1336.                          D = 0110        ( 4 bits )
  1337.                          F = 0111        ( 4 bits )
  1338.                          B = 10          ( 2 bits )
  1339.                          E = 11          ( 2 bits )
  1340.  
  1341.                Mind  that the zeroes and ones above are bits and not  bytes. 
  1342.                Each   character  was represented in  the original file by  8 
  1343.                bits (one byte) and since we have reduced the number of  bits 
  1344.                needed  to represent each character, we therefore reduce  the 
  1345.                size of the file.  The savings add up as follows,
  1346.  
  1347.  
  1348.  
  1349.  
  1350.  
  1351.  
  1352.  
  1353.  
  1354.  
  1355.      NARC.DOC   Copyright (c) 1987,88   Infinity Design Concepts, Inc.
  1356.           
  1357.                                      Page 17
  1358.  
  1359.                 character  frequency     original bits    squeezed bits  savings
  1360.  
  1361.                 C            30           30 x 8 = 240      30 x 2 = 60    180
  1362.                 A            10           10 x 8 = 80       10 x 3 = 30     50
  1363.                 D             5            5 x 8 = 40        5 x 4 = 20     20
  1364.                 F            10           10 x 8 = 80       10 x 4 = 40     40
  1365.                 B            20           20 x 8 = 160      20 x 2 = 40    120
  1366.                 E            25           25 x 8 = 200      25 x 2 = 50    150
  1367.                          ══════════               ══════            ═════  ═════
  1368.                 Totals      100                    800              240    560
  1369.                                                     │                │
  1370.                            original file size ──────┘                │
  1371.                            squeezed file size ───────────────────────┘
  1372.  
  1373.  
  1374.                240  is 30% of 800, so we have compressed this file  by  70%. 
  1375.                Golly Wally, that seems pretty good. The rub lies in the fact 
  1376.                that  in order  to reconstruct  the original file,   we  must 
  1377.                have access to the decode  tree and since  each tree will  be 
  1378.                different for each file, we must therefore save the tree with 
  1379.                the file. It turns out that the tree can have only 256  nodes 
  1380.                in a bytewise  compression technique and each node will  hold 
  1381.                4  bytes as pointers,a full table will be about 1k long.  The 
  1382.                table in our example has 5 nodes plus the 6 leaf nodes (where 
  1383.                our  characters are),  totaling 11.  4 times 11 is 44 and  if 
  1384.                we add a few bytes for storing the node count and some  other 
  1385.                statistics,  our table is about 50 bytes long. If we look  at 
  1386.                the  240 in the above table this gives the total  number   of 
  1387.                bits that it will take to encode the file, divide 240 by 8 to 
  1388.                get  the number of bytes (30) and add it to our 50, we get  a  
  1389.                compressed  file  size of  80 bytes. Since our original  file 
  1390.                was 100 bytes, we have achieved a 20% reduction in file size. 
  1391.                Not bad. What we have really accomplished is a translation of 
  1392.                character  sets, with our new set requiring less  space  than 
  1393.                the original ASCII set.
  1394.  
  1395.                 How far can we go ?
  1396.  
  1397.                If  we  look  at  the maximums that we  can  obtain  for  the 
  1398.                different  bit combinations in a optimally skewed tree,  that 
  1399.                is  a tree that is not exactly symmetrical, we find  that  we 
  1400.                can  have only 4 - 2 bit codes, 8 - 3 bit codes, 16 -  4  bit 
  1401.                codes, 32 - 5 bit codes, 64 - 6 bit codes, 128 - 7 bit codes, 
  1402.                the remaining 4 will be 8 bit codes.
  1403.  
  1404.  
  1405.                                  2       - 1 bit codes
  1406.                                  4       - 2 bit codes
  1407.                                  8       - 3 bit codes
  1408.                                  16      - 4 bit codes
  1409.                                  32      - 5 bit codes
  1410.                                  64      - 6 bit codes
  1411.                                  128     - 7 bit codes
  1412.                               --------
  1413.                                  254
  1414.  
  1415.  
  1416.  
  1417.      NARC.DOC   Copyright (c) 1987,88   Infinity Design Concepts, Inc.
  1418.           
  1419.                                      Page 18
  1420.  
  1421.                And  since we have a total of 256 different bytes to  encode, 
  1422.                the remaining 2 characters  must have 8 bit codes. If we  add 
  1423.                the  number of bits that this represents,we find a  total  of 
  1424.                1554 bits or 195 bytes. So at maximum, we have compressed the 
  1425.                256  bytes to 195 or 33%, thus the idealistic   maximum  that 
  1426.                can be  achieved with the Huffman algorithm is 33% when using 
  1427.                a byte level implementation.
  1428.  
  1429.                One  final note;  The Huffman scheme requires the input  file 
  1430.                to  be read twice, once to count characters  and  frequencies 
  1431.                and  then  again  to  do the   actual  encoding.   The  major 
  1432.                differences in Huffman coding and  crunching lie in the  fact  
  1433.                that  crunching is a one pass operation and does not  require 
  1434.                the  table  to be stored with the file.  Both,  however,  are 
  1435.                extremely  vulnerable  to errors, for example,  imagine  what 
  1436.                would happen if you skipped one bit when squeezing the  file, 
  1437.                all of the remaining characters in the file would  become the 
  1438.                proverbial garbage, since we are looking at the file on a bit 
  1439.                level.
  1440.  
  1441.  
  1442.                NARC uses the method described in K. & R. pp. 130 for setting 
  1443.                up  the  binary tree with several modifications.  The  simple 
  1444.                binary  tree  is acceptable for this, since  the  tree  never 
  1445.                grows and therefore will never become unbalanced.
  1446.  
  1447.                If  you  followed  that,  now go back  and  read  the  second 
  1448.                paragraph again, maybe it will make sense this time.
  1449.  
  1450.                             ══════════════════════
  1451.                                   CRUNCHING
  1452.                             ══════════════════════
  1453.  
  1454.  
  1455.                Crunching  began with an article by J. Ziv and A.  Lempel  in 
  1456.                IEEE Trans.  Information Theory,  May 1977, where the  method 
  1457.                was  originally described. Terry A. Welch wrote a  definitive 
  1458.                application  article  in   IEEE Computer,   June  1984  which 
  1459.                described  in  detail how to apply  the  algorithm  and  some  
  1460.                common problems encountered. Thus the name LZW compression.
  1461.  
  1462.                Crunching  takes the Huffman coding method a step further  as 
  1463.                it   does  not include a table with the  crunched  file.  The 
  1464.                crunching algorithm also  "learns" as it proceeds through the 
  1465.                file. If it finds repeated strings in the file, they will  be 
  1466.                encoded  into     a table. This table is s et up (in  NARC's 
  1467.                implementation)   as  a   4096 by 3   table.  Each  entry  is 
  1468.                formatted  as  <PREF>,<SUFFIX>,   where  PREF  is  a  2  byte 
  1469.                pointer   to  another  entry.  SUFFIX  is the byte  for  this 
  1470.                entry. Representing the PREF's as pointers rather than values 
  1471.                speeds  up most operations in NARC. This idea came  from  Bob 
  1472.                Freed and is very trick.
  1473.  
  1474.  
  1475.  
  1476.  
  1477.  
  1478.  
  1479.      NARC.DOC   Copyright (c) 1987,88   Infinity Design Concepts, Inc.
  1480.           
  1481.                                      Page 19
  1482.  
  1483.                One obvious benefit of crunched files is the fact that  there 
  1484.                is  no need to  include the encoding table in the  compressed 
  1485.                file as was the case with squeezing. Another great benefit is 
  1486.                the  fact  that    crunching is a  one  pass  operation  as 
  1487.                opposed to the two pass situation in squeezed files.
  1488.  
  1489.                Crunching  begins  by creating an "atomic" table, that  is  a 
  1490.                table  in  RAM  that  contains  256  entries,  one  for  each 
  1491.                character  in  the  extended  ASCII  set.  The  values  range 
  1492.                sequentially from 0 to 255. The table entries are arranged as 
  1493.                follows.
  1494.  
  1495.                  Prefix Pointer (2 bytes) and Suffix byte (1 byte)
  1496.  
  1497.                In  this  initial  table setup, the Suffix bytes  are  the  0 
  1498.                through  255  mentioned  above.   These  are  the    "atomic"  
  1499.                characters,   in  that  they must be in   the  table   before  
  1500.                crunching or uncrunching can begin,  since all files  contain  
  1501.                some   portion  of this  character set. We do not know  which 
  1502.                characters will be included in any given file and which  ones 
  1503.                will  be excluded,so we must include them all in our  initial 
  1504.                table. Once this table is set up, we can begin crunching.
  1505.  
  1506.                The Prefix pointer will contain a value that is a pointer  to 
  1507.                another string. When the table is initially set up, there are 
  1508.                no  other   strings,   so this  Prefix pointer is  set  to  a 
  1509.                special "Null" string, that is it points nowhere. We must  be 
  1510.                careful  when  crunching the file, to look for  this  special 
  1511.                pointer and act accordingly when we encounter it.
  1512.  
  1513.                This  Prefix  and  Suffix business is used  to  "build"  long 
  1514.                strings.  If we read the input file and found that the  first 
  1515.                character was the letter "I",  we would  look this letter  up 
  1516.                in the string table by hashing (computing an address). If  we 
  1517.                found the letter in the table (which we certainly will on the 
  1518.                first character),  then we  output it's "hashed"  address  as 
  1519.                a   code  to the  output file (the  crunched  file).  Suppose 
  1520.                then,   that the  next  character  input  from the  file  was 
  1521.                the  letter "D",  the  cruncher would then look at the I  and 
  1522.                the  D  together to see if  they exist as a   string  in  the 
  1523.                table. Well of course, since this is the second character  of 
  1524.                the  file, we know that it doesn't,  so the cruncher forms  a 
  1525.                new entry in the string table. This entry has  as its' Prefix 
  1526.                pointer,  a value that "points" to the letter "I"  entry   in 
  1527.                the  table, that we made a minute ago.  The  suffix  byte  in  
  1528.                this  case  would be the letter "D".  Now   another  code  is  
  1529.                output  to  the crunched file, representing the  letter  "D".  
  1530.                Well  this is great,  we  have  now turned 2 bytes  from  the 
  1531.                input  file  (16 bits) into 3 bytes in the  output  file  (24 
  1532.                bits). You are correct, crunching begins by  "not  crunching" 
  1533.                ,  but it is a crazy world ! The real value becomes  apparent 
  1534.                when  we  run into this same sequence "ID" in the input  file 
  1535.                again.  Now we will find an entry for it in the string  table 
  1536.                and we can  output a single 12 bit code that stands for "ID", 
  1537.                thus  saving  4  bits.   The  cruncher  continues  "learning" 
  1538.                strings  like this until the file is crunched.  It should  be 
  1539.                noted  that the string table is dynamically changing  as  the 
  1540.  
  1541.      NARC.DOC   Copyright (c) 1987,88   Infinity Design Concepts, Inc.
  1542.           
  1543.                                      Page 20
  1544.  
  1545.                input file is processed.
  1546.  
  1547.                The   early  versions  of  crunching   implemented,   stopped 
  1548.                "learning"  once the string table was full. This gave a  very 
  1549.                poor  compression ratio in some files. Versions 8 and 9  have 
  1550.                an additional feature called adaptive reset, where the string 
  1551.                table  is cleared and crunching begins all over again !  This 
  1552.                capability  really helps the larger files more  than  smaller 
  1553.                files.
  1554.  
  1555.  
  1556.  
  1557.  
  1558.                              Details of Storage Versions
  1559.  
  1560.  
  1561.                  NARC supports all of the current "skrunching" algorithms. A 
  1562.                brief description of each follows.
  1563.  
  1564.                                       Version    1
  1565.  
  1566.                 - "STORED" File is simply stored (obsolete now, 25 byte 
  1567.                header)
  1568.  
  1569.                  NOTE: Files stored with this version are rare.
  1570.  
  1571.                                       Version    2
  1572.                
  1573.                -  "STORED"  Current  version of  simple  storage.  This  
  1574.                version was implemented with the implementation of  file 
  1575.                compression.  The main difference in version 1 and 2  is 
  1576.                the  ARC header  (see header section below),  version  1 
  1577.                has a header length 4 bytes smaller than any of the rest 
  1578.                of the storage  methods since in  version 1 there was no 
  1579.                need to  store the  original file length separately from 
  1580.                the stored file length since they were the same.
  1581.  
  1582.                                       Version 3
  1583.  
  1584.                -  "PACKED" Repeated bytes are packed into a three  byte 
  1585.                string (see Packing above)
  1586.  
  1587.                                       Version    4
  1588.             
  1589.                - "SQUEEZED" after packing. The file is first packed  as 
  1590.                described above and then squeezed
  1591.  
  1592.                                       Version    5
  1593.  
  1594.                -  "CRUNCHED"  This is the first implementation  of  LZW 
  1595.                released. Uses fixed length codes and a complex  hashing 
  1596.                function. (obsolete now) (See hashing below)
  1597.  
  1598.                  NOTE: Files compressed with this version are hard to find.
  1599.                        Version was released only one month when next version
  1600.                        came out.
  1601.  
  1602.  
  1603.      NARC.DOC   Copyright (c) 1987,88   Infinity Design Concepts, Inc.
  1604.           
  1605.                                      Page 21
  1606.  
  1607.                                       Version    6
  1608.  
  1609.                - "CRUNCHED" after packing. The file is first packed and 
  1610.                then  crunched.  Uses fixed length codes  and  the  same 
  1611.                hashing function as version 5.
  1612.  
  1613.                                       Version    7
  1614.  
  1615.                -  "CRUNCHED" after packing. Same as version 6 except  a 
  1616.                faster hashing function is used.
  1617.  
  1618.                  NOTE: Thom Henderson (author of ARC) has this to say about
  1619.                        version 7. "This approach was abandoned because dynamic
  1620.                        Lempel-Ziv works as well, and packs smaller also. However
  1621.                        inadvertent release of a developmental copy forces us to
  1622.                        leave this in."
  1623.  
  1624.  
  1625.                                       Version    8
  1626.  
  1627.                -  "CRUNCHED" after packing. Uses variable length  codes 
  1628.                in  the  crunched file (9 to 12 bits) and has  a  faster 
  1629.                hash function (actually not hashing at all, but for  the 
  1630.                sake of consistency, we will call it that). This version 
  1631.                also resets the string table when it becomes full  which 
  1632.                benefits  the  compression ratio of larger  files.  This 
  1633.                resetting is commonly called an adaptive reset.
  1634.  
  1635.  
  1636.                                       Version    9
  1637.  
  1638.                -  "SQUASHING"  (variation on  crunching  scheme).  This 
  1639.                version uses the same hashing function as version 8  but 
  1640.                varies  the crunching codes from 9 to 13 bits. There  is 
  1641.                also  no  packing, which affords the  string  table  the 
  1642.                opportunity to "learn" longer codes and thus improve the 
  1643.                compression ratio (benefits "real large" files).
  1644.  
  1645.  
  1646.  
  1647.  
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654.  
  1655.  
  1656.  
  1657.  
  1658.  
  1659.  
  1660.  
  1661.  
  1662.  
  1663.  
  1664.  
  1665.      NARC.DOC   Copyright (c) 1987,88   Infinity Design Concepts, Inc.
  1666.           
  1667.                                      Page 22
  1668.  
  1669.  
  1670.  ARC file header structure is same for both DOS and CP/M
  1671.  
  1672.  Byte number             Value(s)        Meaning
  1673.   ══════════════════════════════════════════════════════════════════════════
  1674.          1               1Ah             Header Flag
  1675.          2               0-9             Compression Version
  1676.          3-15            ---             ASCIIZ compressed filename
  1677.          16-19           ---             Compressed file size in bytes
  1678.                                          Low Word, High Word with each word
  1679.                                          in LoHi format
  1680.          20-21           bits            DOS date format
  1681.                          15-9            Year
  1682.                           8-5            Month
  1683.                           4-0            Day        (all zeroes means no date)
  1684.          22-23           bits            DOS time format
  1685.                          15-11           Hours (military)
  1686.                          10-5            Minutes
  1687.                           4-0            Seconds
  1688.          24-25           ---             CRC-16 in LoHi format of uncompressed
  1689.                                          file. ------- This is important.
  1690.          26-29           ---             Original uncompressed  file size
  1691.                                  NOTE:   Version 1 files are not compressed
  1692.                                          so the length can be  found with
  1693.                                          bytes 16-19, also the header len
  1694.                                          for version 1 files is 25 bytes.
  1695.  
  1696.  
  1697.  
  1698.  
  1699.  
  1700.  
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.  
  1721.  
  1722.  
  1723.  
  1724.  
  1725.  
  1726.  
  1727.      NARC.DOC   Copyright (c) 1987,88   Infinity Design Concepts, Inc.
  1728.           
  1729.                                      Page 23
  1730.  
  1731.                 Hashing.....
  1732.  
  1733.                Hashing  is  simply an arithmetic way of coming  up  with  an 
  1734.                address  in a table. You have a set of input numbers  (codes) 
  1735.                that will map  one-to-one with the  output codes in  an ideal 
  1736.                situation. That is, each time you input a certain number, you 
  1737.                can rest assured that the output will always return the  same 
  1738.                output  number.  This  is not quite the case in  the  current 
  1739.                versions  of  .ARC files. The reason is  that  the  algorithm 
  1740.                would  require  a MEG or so of RAM  for  implementation.  The 
  1741.                utilization  of  a  smaller string table in all  of  the  ARC 
  1742.                programs  introduces the possibility of  producing  the  same  
  1743.                output  number for 2 or more input numbers. This is called  a 
  1744.                hash collision. This is handled separately in .ARC files with 
  1745.                what is called a "collision table", which helps to locate the 
  1746.                correct table entry.
  1747.  
  1748.  
  1749.                  There are three versions of "hashing" used in ARC files.
  1750.  
  1751.  Hash1   - Key = upper 12 bits of lower 18 bits of unsigned square of
  1752.                  (prefix code + suffix byte) OR 800h
  1753.  
  1754.                  Used in stowage versions 5 and 6
  1755.  
  1756.  Hash2   - Key = lower 12 bits of unsigned product of
  1757.                  (prefix code + suffix byte) * 15073
  1758.  
  1759.                  Used in stowage version 7
  1760.  
  1761.  Hash3   - Key = next available address in table.
  1762.  
  1763.                  Used in stowage versions 8 and 9
  1764.  
  1765.  
  1766.  
  1767.  
  1768.          CRC calculations -
  1769.  
  1770.                NARC  does  not use the traditional table lookup  method  for 
  1771.                calculating the CRC of the file. The table approach  requires 
  1772.                the  table  to  be in RAM and  takes  up  more  space.   NARC 
  1773.                calculates the CRC on the fly,  which  requires no table  and 
  1774.                saves  space.  The  algorithm is taken  from  the  definitive 
  1775.                article  by    Aram  Perez   in IEEE  Micro,  June  '83.  The 
  1776.                polynomial is X^16 + X^15 + X^2 + X^1 which is not compatible 
  1777.                with the Xmodem CRC.
  1778.  
  1779.  
  1780.                                      Gary Conway
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  
  1787.  
  1788.  
  1789.      NARC.DOC   Copyright (c) 1987,88   Infinity Design Concepts, Inc.
  1790.           
  1791.                                      Page 24
  1792.  
  1793.                         ══════════════════════════════
  1794.                         ARC RELEASE DATES AND VERSIONS
  1795.                         ══════════════════════════════
  1796.  
  1797.  
  1798.  
  1799.                These  are  the various versions of ARC.EXE that I  have  and 
  1800.                what versions of storage they supported. PKxARC supports  all 
  1801.                of  these  methods  as well since they  were  all  originally 
  1802.                created by ARC.EXE.
  1803.  
  1804.  
  1805.          Date                                   Stowage Methods
  1806.          Released        Version                   Supported
  1807.  
  1808.          05-01-85        3.10            Storing,Packing,Squeezing  (1-4)
  1809.                                            ( version 5 in here somewhere)
  1810.          06-26-85        4.10            Up to version 6 of crunching
  1811.          11-18-85        4.50            Up to version 6 of crunching
  1812.          12-04-85        4.52            Up to version 6 of crunching
  1813.                                            ( version 7 in here somewhere)
  1814.          01-21-86        5.00            Up to version 8 of crunching
  1815.          01-31-86        5.10            Up to version 8 of crunching
  1816.          02-05-86        5.12            Up to version 8 of crunching
  1817.          10-24-86        5.20            Up to version 8 of crunching
  1818.  
  1819.  
  1820.                  This  list is compiled in an attempt to start some kind  of 
  1821.                historical  record as to what transpired in the ARC world.  I 
  1822.                would be interested in hearing of additions.
  1823.  
  1824.  
  1825.  
  1826.  
  1827.  
  1828.  
  1829.  
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  End of NARC.DOC   Copyright (c) 1987,88    Infinity Design Concepts, Inc.
  1852.           
  1853.                                      Page 25
  1854.